package cn.isjinhao.crws.sql.grammar.create;

import cn.isjinhao.crws.sql.grammar.BinaryArithmetic;
import cn.isjinhao.crws.sql.grammar.Comparison;
import cn.isjinhao.crws.sql.grammar.CurdStatementVisitor;
import cn.isjinhao.crws.sql.grammar.Function;
import cn.isjinhao.crws.sql.grammar.GroupFunction;
import cn.isjinhao.crws.sql.grammar.Grouping;
import cn.isjinhao.crws.sql.grammar.Identifier;
import cn.isjinhao.crws.sql.grammar.Literal;
import cn.isjinhao.crws.sql.grammar.Logic;
import cn.isjinhao.crws.sql.grammar.UnaryArithmetic;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.Select;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.SingleSelect;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.column.ColumnRep;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.column.ColumnSeg;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.group.GroupBySeg;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.limit.LimitSeg;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.order.OrderBySeg;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.table.TableRep;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.table.TableSeg;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.where.ExistsCondition;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.where.InCondition;
import cn.isjinhao.crws.sql.grammar.retrieve.represention.where.RetrieveWhereSeg;

/**
 * @Author ISJINHAO
 * @Date 2021/4/3 19:14
 */
public abstract class InsertVisitor<R> implements CurdStatementVisitor<R> {

    public final R visitSelect(Select select) {
        throw new UnsupportedOperationException();
    }

    public final R visitSingleSelect(SingleSelect singleSelect) {
        throw new UnsupportedOperationException();
    }

    public final R visitColumnSeg(ColumnSeg columnSeg) {
        throw new UnsupportedOperationException();
    }

    public final R visitColumnRep(ColumnRep columnRep) {
        throw new UnsupportedOperationException();
    }

    public final R visitTableSeg(TableSeg tableSeg) {
        throw new UnsupportedOperationException();
    }

    public final R visitTableRep(TableRep tableRep) {
        throw new UnsupportedOperationException();
    }

    public final R visitRetrieveWhereSeg(RetrieveWhereSeg retrieveWhereSeg) {
        throw new UnsupportedOperationException();
    }

    public final R visitInCondition(InCondition inCondition) {
        throw new UnsupportedOperationException();
    }

    public final R visitExistsCondition(ExistsCondition existsCondition) {
        throw new UnsupportedOperationException();
    }

    public final R visitGroupBySeg(GroupBySeg groupBySeg) {
        throw new UnsupportedOperationException();
    }

    public final R visitOrderBySeg(OrderBySeg orderBySeg) {
        throw new UnsupportedOperationException();
    }

    public final R visitLimitSeg(LimitSeg limitSeg) {
        throw new UnsupportedOperationException();
    }

    public final R visitLogic(Logic logic) {
        throw new UnsupportedOperationException();
    }

    public final R visitComparison(Comparison comparison) {
        throw new UnsupportedOperationException();
    }

    public final R visitBinaryArithmetic(BinaryArithmetic binaryArithmetic) {
        throw new UnsupportedOperationException();
    }

    public final R visitUnaryArithmetic(UnaryArithmetic unaryArithmetic) {
        throw new UnsupportedOperationException();
    }

    public final R visitLiteral(Literal literal) {
        throw new UnsupportedOperationException();
    }

    public final R visitGroupFunction(GroupFunction groupFunction) {
        throw new UnsupportedOperationException();
    }

    public final R visitGrouping(Grouping grouping) {
        throw new UnsupportedOperationException();
    }

    public final R visitIdentifier(Identifier identifier) {
        throw new UnsupportedOperationException();
    }

    public final R visitFunction(Function function) {
        throw new UnsupportedOperationException();
    }

}
